﻿using System.Drawing;

namespace Quakk
{
    /// <summary>
    /// Static class provides all Drawing objects required to draw the display
    /// </summary>
    public static class Display
    {
        public static Color StandardTweetColour
        {
            get { return Color.FromArgb(126, 126, 126); }
        }

        public static Color ReplyTweetColour
        {
            get { return Color.FromArgb(91, 161, 99); }
        }

        public static Color SelfTweetColour
        {
            get { return Color.FromArgb(90, 101, 161); }
        }

        public static Color BackgroundColour
        {
            get { return Color.FromArgb(128, 128, 128); }
        }

        public static Color ShadowColour
        {
            get { return Color.FromArgb(64, 64, 64); }
        }

        public static Brush StandardTweetBrush
        {
            get { return new SolidBrush(StandardTweetColour); }
        }

        public static Brush ReplyTweetBrush
        {
            get { return new SolidBrush(ReplyTweetColour); }
        }

        public static Brush SelfTweetBrush
        {
            get { return new SolidBrush(SelfTweetColour); }
        }

        public static Brush ShadowBrush
        {
            get { return new SolidBrush(ShadowColour); }
        }

        public static Brush TitleBrush
        {
            get { return new SolidBrush(TitleTextColour); }
        }

        public static Brush BodyBrush
        {
            get { return new SolidBrush(BodyTextColour); }
        }

        public static Brush FooterBrush
        {
            get { return new SolidBrush(FooterTextColour); }
        }

        public static Pen BorderPen
        {
            get { return new Pen(Color.Black); }
        }

        public static Pen ImageBorderPen
        {
            get { return new Pen(Color.White); }
        }

        public static Font TitleFont
        {
            get { return new Font("Arial", 9, FontStyle.Bold); }
        }

        public static Font BodyFont
        {
            get { return new Font("Arial", 7, FontStyle.Regular); }
        }

        public static Font FooterFont
        {
            get { return new Font("Arial", 7, FontStyle.Regular); }
        }

        private static Color TitleTextColour
        {
            get { return Color.White; }
        }

        private static Color BodyTextColour
        {
            get { return Color.Black; }
        }

        private static Color FooterTextColour
        {
            get { return Color.LightGray; }
        }

        public static Color IncreaseLuminance(Color color, int value)
        {
            int r = color.R + value;
            int g = color.G + value;
            int b = color.B + value;
            return Color.FromArgb(r, g, b);
        }
    }
}
